package com.kuang.springcloud.service;
import com.kuang.springcloud.pojo.Dept;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

//feign 是接口和注解，所以我们写接口就行了
//这里的接口指向服务提供者的接口，是从注册中心拿过来的数据
@Component
@FeignClient(value = "SPRINGCLOUD-PROVIDER-DEPT",fallbackFactory = DeptClientServiceFallbackFactory.class) //value里面的值就是eureka里面的applicationname
public interface DeptClientService {

    @GetMapping("/dept/get/{id}")
    public Dept queryById(@PathVariable("id")Long id);
    @GetMapping("/dept/list")
    public List<Dept> queryAll();
    @GetMapping("/dept/add")
    public boolean addDept(Dept dept);


    /*
        feign,主要是社区，大家都习惯面向面向接口编程，这个是很多开发人员的规范，调用微服务访问两种方法
            1、微服务名字   ribbon
            2、接口和注解  feign
        在feign的实现下，我们只需要创建一个接口并使用注解的方式配置他（类似于Dao接口上标注mapper注解，现在是一个微服务接口上面标注一个feign注解）

     */


}
